package net.zdsoft.wpchat.support.dao;

import java.util.List;
import java.util.Map;

import net.zdsoft.wpchat.support.entity.AuthGroup;
import net.zdsoft.wpchat.support.entity.AuthGroupUser;
import net.zdsoft.wpchat.support.enums.AuthGroupTypeEnum;

/**
 * 群组dao
 *
 * @author xuan
 */
public interface AuthGroupDao {
	/**
	 * 查找所有群组
	 *
	 * @return
	 */
	List<AuthGroup> findAll();

	/**
	 * 插入一个群组
	 *
	 * @param authGroup
	 */
	void insertGroup(AuthGroup authGroup);

	/**
	 * 更新一个群组
	 *
	 * @param authGroup
	 */
	void updateGroup(AuthGroup authGroup);

	/**
	 * 根据群组id数据批量删除群组
	 *
	 * @param groupIds
	 */
	void deleteGroup(String... groupIds);

	/**
	 * 查找有成员的群组map
	 * @return
	 */
	Map<String, List<AuthGroupUser>> findGroupUsers();

	/**
	 * 根据群组id数组查找群组列表
	 *
	 * @param groupIds
	 * @return
	 */
	List<AuthGroup> findByIds(String... groupIds);

	/**
	 * 根据群组类型查找群组列表
	 *
	 * @param type
	 * @return
	 */
	List<AuthGroup> findByType(AuthGroupTypeEnum type);

}
